In recent years, GPS-based location determination and navigation have become widely popular. For example, in-car navigation systems, cell phones, and other hand-held wireless communication devices (e.g., BlackBerrys, tablet PCs, etc.) often feature location determination and employ a GPS receiver. A GPS receiver typically receives a GPS signal transmitted from a GPS satellite and extracts from the signal information needed for location determination. In general, a GPS signal includes frames of message data (such as the satellite's ephemeris data, almanac data, etc.), and a GPS receiver can determine the time of transmission of the message data by identifying the frame structure of the received GPS signal.
Generally, the GPS receiver also determines the exact time at which the message was received. The difference between the time of reception and the time of transmission is the time taken by the GPS signal to travel from the satellite to the receiver. Because the GPS signal travels at approximately the speed of light, the time difference described above multiplied by the speed of light yields the range (i.e., distance) between the GPS satellite and the GPS receiver. The location of the GPS receiver is then often determined based on its range. However, because the speed of light is a large quantity (approximately 3×108 m/s), small errors in the measurement of the difference between the time of reception and the time of transmission can cause large errors in the range determination, thereby causing inaccurate location determination. For example, an error of 1 ms in time difference can cause the determined location to be off by about 300 km from the actual location.
Usually, a GPS satellite contains a very high precision clock, such as an atomic clock, and, hence, the time of transmission of the message embedded in the frame structure of the GPS signal tends to be extremely accurate, e.g., within a few picoseconds per day of the standard universal time. The GPS receivers used in commercial applications such as in-car navigation systems and cell phones do not, however, typically include a high-precision atomic clock due to cost limitations. Instead, these receivers commonly employ a substantially cheaper, and less precise, crystal-oscillator-based clock to determine the time of reception of the message in the received GPS signal. These local clocks in the receivers are then typically corrected in order to accurately determine location.
Two methods, namely, the single difference (SD) method and the double difference (DD) method, are commonly employed for clock correction. In the SD method, the ranges of two satellite receivers are determined from one satellite. The satellite can be a GPS satellite or a non-GPS satellite, such as a satellite used for radio or TV broadcast. From a comparison of these ranges, an error in the satellite's clock can be mitigated or eliminated. In the DD method, a pair of range values from two satellites is determined for each of two receivers. By comparing these four range values, both the satellite-clock error and the error in the local clock at each of the receivers can be mitigated or eliminated. Clock correction using the SD or DD methods, however, initially requires exact knowledge of the satellites' and/or the receivers' locations. Furthermore, for local-clock correction, the SD and DD methods require range determination with respect to at least two satellites.
In addition still, even when clock-correction information is available at a GPS receiver, in certain high-noise situations (e.g., in urban areas having many high-rise buildings, in wooded, remote areas, etc.) a GPS receiver may require assistance in determining the time of transmission of a message from the received GPS signal, as explained herein. Typically, the GPS signal broadcast from a GPS satellite is synthesized by modulating a carrier (i.e., a waveform at a certain frequency) according to a 1023-chip long pseudo-random (PN) code sequence. The PN code sequence designated to each GPS satellite is unique, and each satellite modulates its carrier by repeating the designated 1023-chip-long PN sequence at about every millisecond (i.e., at a rate of approximately 1.023 million chips per second.) The carrier modulated using the PN code is further modulated using message data the GPS satellite broadcasts. The message data include the GPS satellite's ephemeris and almanac, i.e., data related to the satellite's orbit, and are transmitted at a rate of about 50 Hz (i.e., one message data bit per approximately 20 ms interval). The modulated GPS signal is received at a GPS receiver after a propagation delay related to the distance between the GPS satellite and receiver.
In theory, if the GPS receiver locally generated an exact duplicate of the transmitted GPS signal at exactly the same time the GPS signal was transmitted, and delayed the duplicate signal by exactly the propagation delay, the received GPS signal and the duplicate signal would align perfectly. To produce such a theoretical duplicate signal, the GPS receiver would need to know the PN code designated to the GPS satellite transmitting the received GPS signal, the message data included in the received GPS signal, and the exact propagation delay.
In practice, although a GPS receiver may not know the PN code designated to the GPS satellite from which a GPS signal was received, the PN codes of all 30 GPS satellites in orbit at present are generally known by the receiver. As such, a typical GPS receiver generates one duplicate signal corresponding to the PN code of each GPS satellite (i.e., 30 or fewer at present, and more if additional GPS satellites become available in the future). Each duplicate signal is then delayed by a number of estimated propagation delay values. Each of the delayed duplicate signals (i.e., a candidate signal) is then correlated with the received signal, and the candidate signal that results in maximum correlation relates to the PN code of the GPS satellite from which the GPS signal was received, and to the propagation delay of the GPS signal.
Each one of these numerous correlations involving 1023-chip long PN sequences must be completed, however, within the duration of a signal message data bit, i.e., within 20 ms, as described above. Otherwise, the next transmitted message data bit may cause the received GPS signal to change, causing the subsequent correlations to be inaccurate. One approach to addressing this problem is to store the received GPS signal in memory, and to use the stored signal for all correlations (also called integration). This, however, requires a large memory and can increase the size and/or cost of the GPS receiver. Another approach is to assist a GPS receiver by providing the message data to it, so that the receiver may extend integration (i.e., continue with the correlations) beyond the 20 ms window. As explained below, some ground stations know the message data because they initially transmit the message data to the GPS satellites for subsequent broadcast thereof. As a result, these ground stations can provide the message data to a GPS receiver.
Currently, High Integrity GPS (known as iGPS) provides both clock-correction information and the message data to commercial GPS receivers. The iGPS includes ground stations and a constellation of satellites that is dedicated to assisting in GPS navigation. The ground stations employed in iGPS know the message data, as described above, their own locations, and the locations of the dedicated satellites. Therefore, in one approach to addressing the above described problems in the operation of a GPS receiver, the ground stations function as satellite receivers in providing clock-correction based on the SD or DD methods. The ground stations also assist GPS receivers by providing the message data. The clock correction and message data are provided via satellite links using dedicated satellites.
However, one important challenge faced by GPS-based location determination and navigation systems is their dependence on the iGPS. Without iGPS, many GPS receivers may not function accurately, if at all. Even if a substitute to iGPS were available, the SD and DD methods for local clock correction require at least two satellites, and knowledge of the satellites' exact locations. Though many commercial satellites orbit the earth, their exact location information is not available in some instances.
Needs therefore exist for improved systems and methods of correcting a local clock at a GPS receiver, and for providing assistance thereto in extracting information from a received GPS signal, so as to facilitate GPS-based location determination and navigation.